Every computer connected to the Internet is connected in some fashion to every other computer connected to the Internet, and all of these computers are capable of communicating with each other through various layers of network communications protocols. These protocols differ widely at the physical level, with some protocols communicating through changes in voltage across copper wires, others utilizing pulses of light across fiber optic cable, and still others using radio and microwave signals broadcast through the air.
However, the key to the Internet's success is the Internet Protocol—a routing and addressing protocol layered on top of the physical protocols and ignorant of the actual physical medium used. The Internet Protocol allows any one computer to find any other computer on the Internet by knowing only one thing about the remote computer: the Internet Protocol network address associated with that remote computer. This “IP Address” is a thirty-two bit binary number, commonly represented visually in “dotted-decimal” format for improved human-readability, such as: 150.50.10.34.
Each computer on the Internet generally must have a unique IP Address. When data packets are broadcast to the Internet identifying the IP Address of the intended recipient, devices with knowledge of network topography determine where to send the packets. When the destination machine receives the data packets, it verifies that the packet is intended for it by examining the destination IP Address stored in the Internet Protocol packet header, and disregards packets that are not intended for it. Further, the datagrams must also identify the IP Address of the sending computer so that the destination device knows where to send responses. IP Addresses are so fundamental to the Internet that even novice Internet users generally are aware of them.
Additional protocols are built on top of IP to improve the reliability of network communications, such as the Transmission Control Protocol (“TCP”). TCP handles the “session” between each endpoint of network communications, breaking large chunks of data into small datagrams and sending each datagram separately, reassembling the datagrams in proper order when they are received by the destination computer, and re-transmitting lost datagrams. TCP and IP are the workhorses of the Internet and, due to their complementary functions, are often referenced in concert as “TCP/IP,” though they are technically distinct protocols.
Application protocols are then layered on top of TCP/IP to enable specific types of Internet communications. For example, the HyperText Transfer Protocol (“HTTP”) is used by web browsers to exchange web page between web sites and web browsers. Other such protocols include the Simple Mail Transfer Protocol (“SMTP”), which is used to transfer one-to-one messages between Internet users, what is now known as “e-mail.” Other venerable open protocols include FTP, IRC, IMCP, and SNMP. Newer protocols include peer-to-peer protocols and closed protocols, some of them layered on top of these and other open protocols. Network protocols are sometimes referred to as a “protocol stack” because each higher level protocol is generally independent of the protocols “beneath” it.
When these fundamental building blocks of the Internet were engineered, virtually all computers, people, and institutions with access to the Internet could be trusted to behave themselves. In its infancy, the Internet was used almost exclusively by academics at major research institutions, the government, a handful of private corporations, and a very small number of individual users with benign intentions. The engineering goal of the Internet was physical security, not data security, and the system was designed to survive disruptions caused by damage to physical components, such as by acts of warfare or terrorism. As such, little attention was paid to data security threats originating within the network, and the protocols do not capture much information being used to identify nefarious individuals or malicious data. For example, TCP/IP captures little identifying information beyond the source and destination IP Addresses. Similarly, the designers of protocols such as SMTP, FTP, and IRC had little reason to include any form of source verification. For example, SMTP simply assumes that the sender of an e-mail is who the sender claims to be. The designers of newer protocols, notably peer-to-peer file sharing protocols, specifically engineered them to protect anonymity and frustrate attempts to identify the user.